﻿using System;

namespace IocPerformance.Adapters
{
    public interface IContainerAdapter : IDisposable
    {
        string Version { get; }

        string PackageName { get; }

        bool SupportsConditional { get; }

        bool SupportGeneric { get; }

        bool SupportsMultiple { get; }

        bool SupportsInterception { get; }

        void Prepare();

        object Resolve(Type type);

        TService Resolve<TService>() where TService : class;

        //object ResolveProxy(Type type);
    }
}